package com.ruoyi.system.service;

import java.util.List;
import com.ruoyi.system.domain.DsClass;
import com.ruoyi.system.domain.DsStudent;

/**
 * 课程记录Service接口
 *
 * @author tyro
 * @date 2025-03-23
 */
public interface IDsClassService
{
    /**
     * 查询课程记录
     *
     * @param classId 课程记录主键
     * @return 课程记录
     */
    public DsClass selectDsClassByClassId(Long classId);

    /**
     * 查询课程记录列表
     *
     * @param dsClass 课程记录
     * @return 课程记录集合
     */
    public List<DsClass> selectDsClassList(DsClass dsClass);

    /**
     * 新增课程记录
     *
     * @param dsClass 课程记录
     * @return 结果
     */
    public int insertDsClass(DsClass dsClass);

    /**
     * 修改课程记录
     *
     * @param dsClass 课程记录
     * @return 结果
     */
    public int updateDsClass(DsClass dsClass);

    /**
     * 批量删除课程记录
     *
     * @param classIds 需要删除的课程记录主键集合
     * @return 结果
     */
    public int deleteDsClassByClassIds(Long[] classIds);

    /**
     * 删除课程记录信息
     *
     * @param classId 课程记录主键
     * @return 结果
     */
    public int deleteDsClassByClassId(Long classId);

    /**
     * 查询课程学生列表
     *
     * @param classId 课程ID
     * @return 学生列表
     */
    public List<DsStudent> selectStudentsByClassId(Long classId);

    /**
     * 添加学生到课程
     *
     * @param classId 课程ID
     * @param studentIds 学生ID列表
     * @return 结果
     */
    public int addStudentsToClass(Long classId, List<String> studentIds);

    /**
     * 从课程移除学生
     *
     * @param classId 课程ID
     * @param studentIds 学生ID列表
     * @return 结果
     */
    public int removeStudentsFromClass(Long classId, List<String> studentIds);

    /**
     * 根据班级名称批量添加学生到课程
     *
     * @param classId 课程ID
     * @param className 班级名称
     * @return 添加的学生数量
     */
    public int addStudentsByClassName(Long classId, String className);
}
